package view;


import java.awt.Dialog.ModalExclusionType;
import java.awt.EventQueue;
import java.awt.Label;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.IOException;
import java.sql.SQLException;

import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JEditorPane;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.UIManager;
import javax.swing.border.EmptyBorder;

import control.ClienteController;
import control.GeneralControll;

public class ClientesView extends JFrame implements ActionListener {
	final private JFrame frame;
	private JPanel prioridadeContentPane;
	private JTextField textField_1;
	private JEditorPane dtrpnDigiteOProblema;
	private JCheckBox prioridadeCheckbox;
	private TextField setorTextField;
	private JButton btnConfigurao;
	private JButton btnEfetuarChamado;

	
	/**
	 * Launch the application.
	 */
	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					ClientesView frame = new ClientesView();
					frame.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
	}

	/**
	 * Create the frame.
	 */
	public ClientesView() {
		super();
		setType(Type.POPUP);
		setModalExclusionType(ModalExclusionType.APPLICATION_EXCLUDE);
		try
        {
        UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
        }catch(Exception e){
        	//erro desconhecido
        	
        }
		frame= this;
		setTitle("Abrir chamado para suporte ");
		setResizable(false);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setBounds(100, 100, 318, 300);
		prioridadeContentPane = new JPanel();
		prioridadeContentPane.setName("Prioridade");
		prioridadeContentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
		setContentPane(prioridadeContentPane);
		prioridadeContentPane.setLayout(null);
		
		Label label = new Label("Setor:");
		label.setBounds(10, 10, 34, 22);
		prioridadeContentPane.add(label);
		
		 setorTextField = new TextField();
		setorTextField.setEnabled(false);
		setorTextField.setEditable(false);
		setorTextField.setBounds(50, 10, 117, 22);
		prioridadeContentPane.add(setorTextField);
		
		JLabel lblDescrioDoProblema = new JLabel("Descri\u00E7\u00E3o do problema:");
		lblDescrioDoProblema.setBounds(10, 43, 141, 14);
		prioridadeContentPane.add(lblDescrioDoProblema);
		
		dtrpnDigiteOProblema = new JEditorPane();
		dtrpnDigiteOProblema.setToolTipText("Digite o problema");
		dtrpnDigiteOProblema.setBounds(10, 62, 274, 141);
		prioridadeContentPane.add(dtrpnDigiteOProblema);
		
		Label label_1 = new Label("Falar com:");
		label_1.setBounds(10, 212, 56, 22);
		prioridadeContentPane.add(label_1);
		
		textField_1 = new JTextField();
		textField_1.setBounds(67, 214, 217, 20);
		prioridadeContentPane.add(textField_1);
		textField_1.setColumns(10);
		
		 btnEfetuarChamado = new JButton("Efetuar chamado");
		btnEfetuarChamado.setBounds(77, 242, 152, 23);
		btnEfetuarChamado.addActionListener(this); 
		prioridadeContentPane.add(btnEfetuarChamado);
		
		 prioridadeCheckbox = new JCheckBox("Prioridade");
		prioridadeCheckbox.setBounds(189, 35, 95, 22);
		prioridadeContentPane.add(prioridadeCheckbox);
		
		btnConfigurao = new JButton("Configura\u00E7\u00E3o");
		btnConfigurao.setBounds(189, 9, 113, 23);
		btnConfigurao.addActionListener(this);
		prioridadeContentPane.add(btnConfigurao);
		carregaText();
		
		
		
	}
	public void actionPerformed(ActionEvent e) {
		// TODO Auto-generated method stub
		if(e.getSource()==btnEfetuarChamado){
			
		String setor = setorTextField.getText();
		String conteudo = dtrpnDigiteOProblema.getText();
		Boolean isPrioridade = prioridadeCheckbox.isSelected();
		String falarCom = textField_1.getText();
		ClienteController con = ClienteController.getInstace();
		try {
			try {
				con.doCall(setor,conteudo,isPrioridade,falarCom);
			} catch (SQLException e1) {
				// TODO Auto-generated catch block
				JOptionPane.showMessageDialog(this, "Erro ao conectar o banco");
				e1.printStackTrace();
			}
		} catch (ClassNotFoundException e1) {
			// TODO Auto-generated catch block
			JOptionPane.showMessageDialog(this, "Erro interno");
			e1.printStackTrace();
		}
		JOptionPane.showMessageDialog(this, "Aguarde atendimento...");
		frame.dispose();
		
		} else if(e.getSource()==btnConfigurao){
			
			JFrame x = new ConfigView(ConfigView.Tela.CLIENTE,this);
			x.setVisible(true);
			
			carregaText();
		}
	}

	 void carregaText() {
		// TODO Auto-generated method stub
		GeneralControll gc = new GeneralControll();
		try {
			gc.carregaConfig();
			setorTextField.setText(gc.carregaConfig().getSetor());
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
	}

}
